/*
 * VetorPolar3D.cpp
 *
 *  Created on: May 27, 2011
 *      Author: adailton
 */

#include "../include/VetorPolar3D.h"
#include "../include/Matematica.h"

VetorPolar3D::VetorPolar3D()
:VetorPolar(), mAnguloLatitudinal(0)
{
}

VetorPolar3D::~VetorPolar3D()
{
}

VetorPolar3D::VetorPolar3D(double comprimento, double angH, double angL)
:VetorPolar(comprimento, angH), mAnguloLatitudinal(angL)
{
}

double
VetorPolar3D::getAngulo(OrientacaoAngular orient)
{
    return (orient == OA_HORIZONTAL) ? mAngulo : mAnguloLatitudinal;
}

double
VetorPolar3D::getAnguloRad(OrientacaoAngular orient)
{
	return Matematica::grau2Rad(getAngulo(orient));
}

void
VetorPolar3D::setAngulo(OrientacaoAngular orient, double angulo)
{
	(orient == OA_HORIZONTAL) ? mAngulo = angulo : mAnguloLatitudinal = angulo;
}

/*
double
VetorPolar3D::getDistanciaReal()
{
	return getComprimento()*cos(getAnguloRad(OA_LATITUDINAL) +
			Matematica::grau2Rad(ModeloMundo::getInstance().getEu().getJunta("hj2").getAngulo()));
}
*/
double
VetorPolar3D::getDistancia()
{
	return getComprimento();
}

std::string
VetorPolar3D::toString()
{
    std::string ret;
    ret = convert_to<std::string>(mComprimento) + ", ";
    ret += convert_to<std::string>(mAngulo) + ", ";
    ret += convert_to<std::string>(mAnguloLatitudinal);
    return ret;
}
